#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void ___fat32_cambiar_tamano (void **,unsigned int, unsigned int);

int main(void) {

    int cant = 0;
    char vectorComandos[7];
    char * vectorCadenas = NULL;
    int i, j, k, h;
    char dato;

			printf(">>");

            i = 0;
			cant = 0;
			for (k = 0; k <= 7; k ++)
			vectorComandos[k] = '\0';

            dato = getchar(); //leo un caracter,, ingresado por teclado

    	      while ( (i <= 7) && ((dato != '\n') && (dato != ' ')) ) { //mientras no sea linea nueva,, ni la cadena
			 //ingresada sea superior a 7 caracteres ni sea un espacio en blanco
				vectorComandos[i] = dato; //ingreso los caracteres al vector
				dato = getchar();
				i++;
		      }

			    if (i > 7) {

                    while ( (dato = getchar()) != '\n');
                    printf("Comando no valido");

			    } else if (dato == '\n') {

                    if  ( strcmp(vectorComandos, "fsinfo") == 0 ) {  // comparo el vector para ver si coincide con el comando

                    printf("Enviar mensaje a sistema FAT");

				    } else
				      printf("Comando no valido");

			    } else if ( strcmp (vectorComandos, "finfo") == 0 ) { //comparo el contenido del vector para ver si coincide
			         //con el comando

                        while( (dato = getchar()) == ' ');
                        ungetc(dato,stdin);

                        cant = 1;
                        ___fat32_cambiar_tamano( (void **) &vectorCadenas, sizeof(char), cant);
                        vectorCadenas[0] = dato;

				        for (j = 0; ( (dato = getchar()) != '\n'); j ++) {

                           cant = cant + 1;
					       ___fat32_cambiar_tamano( (void **) &vectorCadenas, sizeof(char), cant);
                            vectorCadenas[j] = dato;
                         }

                        h=0;
                        while (cant != 0) {
                        putchar(vectorCadenas[h]);
                        cant --;
                        h++;

                        }

                      } else
                        printf("Comando no valido");

                    free(vectorCadenas);
                    return 0;
}


void ___fat32_cambiar_tamano (void ** vectorCadenas,unsigned int tamano, unsigned int cant) {

  if (cant == 0) {
    free(* vectorCadenas);
    * vectorCadenas = NULL;
    return;
  }
  if (* vectorCadenas == NULL) {
    * vectorCadenas = malloc(tamano * cant);
    return;
  }
  * vectorCadenas = realloc(* vectorCadenas, tamano * cant);
}



